//
// Created by YeMingMing on 2024-03-05.
//

// 第一问是识别一个字符串中的数字，字母，加减乘除等符号，并按序写到另一个字符串中去(主要筛出@￥之类的符)
// 第二问是在第一问的基础上，计算字符串中单词的个数，单词用空格隔开了。
// 第三问就是综合上面两问的具体实现，输入一个字符串，筛出符号，然后计算字符串中的单词的个数。

// 做一下第三题吧，好像也做过了

// 有点难， 题解很妙
#include <stdio.h>
int isChar(char c){
    return ('a' <= c && 'z' >= c) || ('A' <= c && 'Z' >= c);
}

int count_words(const char *str) {
    int count = 0;
    int in_word = 0; // 标记是否在单词中

    while (*str) {
        // 只有字母会进入是否是单词的判断
        if (isChar(*str)) { // 如果当前字符是字母
            if (!in_word) { // 如果不在单词中，则增加单词计数器
                count++;
                in_word = 1; // 设置为在单词中
            }
        } else {
            in_word = 0; // 如果是空格，设置为不在单词中
        }
        str++; // 移动到下一个字符
    }
    return count;
}

int main() {
    int words = count_words("Hello  World! *s* ** *s* ");
    printf("%d\n", words);
    return 0;
}



